\chapter{Testování}
Testování bez pochyby patří k vývoji aplikací. Testovat aplikaci se vyplatí jak v průběhu vývoje, tak i po uvolnění aplikace uživatelům.  Testováním se snažíme objevit co možná nejvyšší počet softwarových chyb, nikoliv zajistit bezchybnost systému. Softwarovým testováním není možno zajistit naprostou bezchybnost systému, jednoduše z toho důvodu, že nelze reálně nasimulovat nekonečné množství vstupních hodnot a následně zkontrolovat nekonečné množství výstupních hodnot, otestovat všechny možné standardní a nestandardní situace a možnosti.
Testování lze rozdělit na dva způsoby, whitebox a blackbox testování. Aplikace Visualizer byla otestována oběma způsoby.

\section{WhiteBox testování}
Toto testování představuje testování softwaru z pohledu programátora. Testují se především metody, jejich vstupní a návratové hodnoty, a dále také objekty, jejich vnitřní hodnoty a~stavy. Toto testování s sebou přináší řadu kapitol, jak na něj pohlížet a co testovat.

V aplikaci Visualizer nebyly vytvářeny žádné speciální testovací třídy. Testování probíhalo na úrovni metod a v rámci objektů. Největší procento z času věnovanému testování si odnesla část XPathPlugin. Tato část obsahuje nejvíce rizikových faktorů. Zejména byly otestovány funkce a vnitřní hodnoty objektů \verb|XPathExpressionParser|, vytvářející strom dotazů, \\a~\verb|XPathTreeTransformer|, implementující transformaci \verb|stromu dotazů|. Dalším krokem bylo otestování synchronizace událostí vyvolaných uživatelem.

Toto testování probíhalo po většinu času zadáváním různě složitých XPath dotazů. Porovnávaly se očekávané a dosažené výsledky tříd a metod.

Testování typu whitebox je v aplikaci realizováno i navenek - přídavným menu XPath. Toto menu slouží pro zobrazení vygenerovaného strom dotazů a sestavených výrazů typu \verb|XPathExpression|.

\section{BlackBox testování}
BlackBox testování představuje testování z pohledu uživatele. Testuje se funkčnost a reakce programu na události jím vyvolané.

V aplikaci Visualizer byla takto otestována především její grafická část. Hodnotily se očekávané reakce programu od reakcí skutečných.

Testování spočívalo na proklikání všech možností, které aplikace uživateli nabízí, otevírá-\\
ním různých typů souborů, zadáváním breakpointů atp.

\section{Souhrn}
Testováním byla objevena řada chyb různého typu. Díky důkladnému testování již lze o~aplikaci Visualizer prohlásit, že je připravena pro uvolnění uživatelům a neobsahuje žádné závažnější chyby. 